package br.com.vti.sisp_sicrim.antigo.util;
import br.com.caelum.vraptor.Result;


public class ExceptionPrograma extends RuntimeException {


	private static final long serialVersionUID = 5282567607342342894L;
	private static final String JAVA_LANG_ARITHMETICEXCEPTION = "java.lang.ArithmeticException"; // Erros em processamento aritm�tico, tal como uma divis�o inteira por 0
	private static final String JAVA_LANG_NUMBERFORMATEXCEPTION = "java.lang.NumberFormatException";//onvers�o de uma string  para um formato num�rico, mas seu conte�do n�o representava adequadamente um n�mero para aquele formato
	private static final String JAVA_LANG_ILLEGALARGUMENTEXCEPTION = "java.lang.IllegalArgumentException";	//Lan�ada para indicar que um m�todo tem sido passado um argumento ilegal ou inapropriado.
	private static final String JAVA_LANG_ARRAYINDEXOUTOFBOUNDSEXCEPTION ="java.lang.ArrayIndexOutOfBoundsException";
	private static final String JAVA_LANG_INDEXOUTOFBOUNDS ="java.lang.IndexOutOfBounds";
	private static final String JAVA_LANG_STRINGINDEXOUTOFBOUNDS ="java.lang.StringIndexOutOfBounds";
	private static final String JAVA_LANG_NULLPOINTEREXCEPTION ="java.lang.NullPointerException";
	private static final String JAVA_LANG_CLASSNOTFOUNDEXCEPTION ="java.lang.ClassNotFoundException";
	private static final String JAVA_IO_IOEXCEPTION = "java.io.IOException";
	private static final String JAVA_IO_EOFEXCEPTION ="java.io.EOFException";
	private static final String JAVA_IO_FILENOTFOUNDEXCEPTION = "java.io.FileNotFoundException";
	private static final String JAVA_IO_INTERRUPTEDIOEXCEPTION = "java.io.InterruptedIOException";	
	
	public static void trataErro(Exception e,Result result) {
		
		String classe = e.getClass().getName();
		
		switch (classe) {
		
		case JAVA_LANG_ARITHMETICEXCEPTION:
			//adiciona mensagen na tela
			UtilBean.adicionarRetorno("Calculo n�o pode ser realizado!", "mensagem", result);
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_LANG_NUMBERFORMATEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_LANG_ILLEGALARGUMENTEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_LANG_ARRAYINDEXOUTOFBOUNDSEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;	
		case JAVA_LANG_INDEXOUTOFBOUNDS:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;	
		case JAVA_LANG_STRINGINDEXOUTOFBOUNDS:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_LANG_NULLPOINTEREXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;	
		case JAVA_LANG_CLASSNOTFOUNDEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;				
		case JAVA_IO_IOEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;	
		case JAVA_IO_EOFEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_IO_FILENOTFOUNDEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;
		case JAVA_IO_INTERRUPTEDIOEXCEPTION:
			//adiciona mensagen na tela
			System.out.println("Exce��o tratada: "+classe);
			break;	
			
		default:
			
			//redirecionar para p�gina de erro
			//adiciona mensagen na tela
			System.out.println("Mensagem Defaut");	
			//UtilBean.redireciona("", result);
		}
		
		
	}

}
